package ar.uba.fi.tonyvaliente.documents;

import ar.uba.fi.tonyvaliente.documents.exception.QueryException;

/**
 * Permite crear objetos que implementen la interfaz Query
 * @author dmorello
 */
public interface QueryFactory {

	/**
	 * Crea una Query a partir del string recibido por
	 * parametro. Dicho string debe contener una consulta
	 * booleana, es decir, terminos, operadores logicos
	 * AND, OR o NOT y parentesis.
	 * @param strQuery String con la query booleana
	 * @return objeto Query correspondiente a la consulta
	 * @throws QueryException si strQuery es null o no se puede parsear
	 */
	Query createBooleanQuery(String strQuery) throws QueryException;
}
